# -*- coding: utf-8 -*-
"""
@Time    : 2024/7/19 16:54 
@Author  : ZhangShenao 
@File    : 5.加载本地数据.py
@Desc    : 从本地文件中加载数据,生成Faiss向量库
"""
import dotenv
from langchain_community.embeddings import ZhipuAIEmbeddings
from langchain_community.vectorstores import FAISS

# 加载环境变量
dotenv.load_dotenv()

# 创建ZhipuAIEmbeddings
# 使用embedding-2这个Embedding模型
embeddings = ZhipuAIEmbeddings(model='embedding-2')

# 从本地文件中加载数据,生成Faiss向量库
faiss = FAISS.load_local(
    folder_path='./vector_store/',  # 指定本地数据保存路径
    embeddings=embeddings,  # 指定Embeddings模型
    index_name='faiss-index',  # 指定索引名称
    allow_dangerous_deserialization=True,  # 允许根据本地文件反序列化数据
)

# 带有得分的相似度检索,返回的得分是欧氏距离,距离越短表示越相关
similarity_search_with_score_result = faiss.similarity_search_with_score(
    query='我养了一只猫，它叫笨笨',  # 指定检索关键词
    k=2,  # 指定返回的数据条数
)
print(f'similarity_search_with_score_result: {similarity_search_with_score_result}')
